Skip to content

Conversation

Divyansha23
Copy link
Contributor

@Divyansha23 Divyansha23 commented Aug 31, 2025

What does this PR do?

Added public incident report for Degradation in email, SMS, and realtime delivery on 2025-08-24

Test Plan

(Write your test plan here. If you changed any code, please provide us with clear instructions on how you verified your changes work.)

Related PRs and Issues

(If this PR is related to any other PR or resolves any issue or related to any issue link all related PR and issues here.)

Have you read the Contributing Guidelines on issues?

(Write your answer here.)

Summary by CodeRabbit

  • Documentation
    • Added an incident report summarizing the Aug 24–26, 2025 outage affecting email delivery, SMS, email OTPs, and realtime events.
    • Details detection symptoms, affected components, user impact, root cause (messaging queue overload), immediate mitigations, long-term fixes, lessons learned, and action items for improved monitoring.
    • Includes a link to the external incident page for full details.

Copy link

coderabbitai bot commented Aug 31, 2025

Walkthrough

Adds 2025/08/24/readme.md, a structured incident report for an Appwrite Cloud outage from 2025-08-24 to 2025-08-26. Documents detection (missing/delayed emails and OTPs), affected components (email delivery, SMS/email OTPs, realtime events), user impact, root cause (messaging queue overload causing dropped/delayed messages), mitigations (service restarts, migrating critical queues, disabling overload tasks), lessons learned, action items (improve monitoring/alerting), and a link to external incident documentation. No public API changes.

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title Check ✅ Passed The title concisely and accurately describes the primary change: adding a public incident report about degraded email, SMS, and realtime delivery. It directly matches the changeset (new 2025/08/24/readme.md incident report) and the PR description, referencing the affected components. It is specific and readable enough for a teammate scanning PR history.
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.
✨ Finishing touches
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch SUC-1640-incident-report-08-24

Tip

👮 Agentic pre-merge checks are now available in preview!

Pro plan users can now enable pre-merge checks in their settings to enforce checklists before merging PRs.

  • Built-in checks – Quickly apply ready-made checks to enforce title conventions, require pull request descriptions that follow templates, validate linked issues for compliance, and more.
  • Custom agentic checks – Define your own rules using CodeRabbit’s advanced agentic capabilities to enforce organization-specific policies and workflows. For example, you can instruct CodeRabbit’s agent to verify that API documentation is updated whenever API schema files are modified in a PR. Note: Upto 5 custom checks are currently allowed during the preview period. Pricing for this feature will be announced in a few weeks.

Please see the documentation for more information.

Example:

reviews:
  pre_merge_checks:
    custom_checks:
      - name: "Undocumented Breaking Changes"
        mode: "warning"
        instructions: |
          Pass/fail criteria: All breaking changes to public APIs, CLI flags, environment variables, configuration keys, database schemas, or HTTP/GraphQL endpoints must be documented in the "Breaking Change" section of the PR description and in CHANGELOG.md. Exclude purely internal or private changes (e.g., code not exported from package entry points or explicitly marked as internal).

Please share your feedback with us on this Discord post.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

🧹 Nitpick comments (5)
2025/08/24/readme.md (5)

3-5: Confirm timestamps and metadata

Please verify start/end times against the status page and consider adding Severity and Regions to the header block for quick scanning.


9-9: Define OTP on first mention and standardize casing of “Realtime”

Improves clarity and consistency.

-Between 24–26 August 2025, some Appwrite Cloud users experienced intermittent issues with email delivery, SMS and email OTPs, and realtime events. The issue was caused by instability in our messaging system. The problem was resolved by stabilizing the messaging infrastructure, and all services are now fully operational.
+Between 24–26 August 2025, some Appwrite Cloud users experienced intermittent issues with email delivery, SMS and email one-time passwords (OTPs), and Realtime events. The issue was caused by instability in our messaging system. The problem was resolved by stabilizing the messaging infrastructure, and all services are now fully operational.

19-21: Format affected components as a bulleted list

Current lines read as run-on text; list improves scanability.

-Email delivery (invitations, password resets, notifications)
-OTP delivery via email and SMS
-Realtime events
+- Email delivery (invitations, password resets, notifications)
+- OTP delivery via email and SMS
+- Realtime events

64-64: Wording: singular “overload”

Tiny consistency tweak.

-Improve monitoring and alerting for earlier detection of overloads.
+Improve monitoring and alerting for earlier detection of overload.

62-65: Action items: add owners and due dates

Helps drive accountability. Example:

-### Action items
-
-Improve monitoring and alerting for earlier detection of overload.
+### Action items
+
+- Improve monitoring and alerting for earlier detection of overload. (Owner: SRE On-call; Due: 2025-09-15)
+- Add queue depth/error-rate SLOs with paging alerts. (Owner: Platform Eng; Due: 2025-09-20)
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled by default for public repositories
  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 4549283 and cb94a9c.

📒 Files selected for processing (1)
  • 2025/08/24/readme.md (1 hunks)
🧰 Additional context used
🪛 LanguageTool
2025/08/24/readme.md

[grammar] ~3-~3: There might be a mistake here.
Context: ...Incident Start: 2025-08-24 07:26 UTC - Incident End: 2025-08-26 05:10 UTC - *...

(QB_NEW_EN)


[grammar] ~4-~4: There might be a mistake here.
Context: ...- Incident End: 2025-08-26 05:10 UTC - Report Prepared By: Divyansha ## Summ...

(QB_NEW_EN)


[grammar] ~19-~19: There might be a mistake here.
Context: ...tations, password resets, notifications) OTP delivery via email and SMS Realtime ...

(QB_NEW_EN)


[grammar] ~31-~31: There might be a mistake here.
Context: ... analysis ### Preliminary findings We noticed few errors in the messaging system resp...

(QB_NEW_EN)

🪛 markdownlint-cli2 (0.17.2)
2025/08/24/readme.md

70-70: Bare URL used

(MD034, no-bare-urls)


### Preliminary findings

We noticed few errors in the messaging system responsible for handling message delivery.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Grammar: “a few errors”

Minor clarity fix.

-We noticed few errors in the messaging system responsible for handling message delivery.
+We noticed a few errors in the messaging system responsible for handling message delivery.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
We noticed few errors in the messaging system responsible for handling message delivery.
We noticed a few errors in the messaging system responsible for handling message delivery.
🧰 Tools
🪛 LanguageTool

[grammar] ~31-~31: There might be a mistake here.
Context: ... analysis ### Preliminary findings We noticed few errors in the messaging system resp...

(QB_NEW_EN)

🤖 Prompt for AI Agents
In 2025/08/24/readme.md around line 31, the phrase "We noticed few errors in the
messaging system responsible for handling message delivery." uses incorrect
grammar; change "few" to "a few" so the sentence reads "We noticed a few errors
in the messaging system responsible for handling message delivery." to improve
clarity and correctness.


### Resolution

We stabilized the messaging infrastructure by migrating critical queues to a more reliable system and disabling task contributing to overload.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Grammar: pluralize “task” and add article

Also reads better with “the overload”.

-We stabilized the messaging infrastructure by migrating critical queues to a more reliable system and disabling task contributing to overload.
+We stabilized the messaging infrastructure by migrating critical queues to a more reliable system and disabling tasks contributing to the overload.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
We stabilized the messaging infrastructure by migrating critical queues to a more reliable system and disabling task contributing to overload.
We stabilized the messaging infrastructure by migrating critical queues to a more reliable system and disabling tasks contributing to the overload.
🤖 Prompt for AI Agents
In 2025/08/24/readme.md around line 49, the sentence uses the singular “task”
and omits an article before “overload”; change it to pluralize “task” to “tasks”
and add “the” so the phrase reads, for example, “disabling the tasks
contributing to the overload,” resulting in: “We stabilized the messaging
infrastructure by migrating critical queues to a more reliable system and
disabling the tasks contributing to the overload.”


### Supporting documentation

https://status.appwrite.online/incident/711585 No newline at end of file
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Fix bare URL (MD034) with descriptive markdown link

Resolves markdownlint warning.

-https://status.appwrite.online/incident/711585
+[Status incident 711585](https://status.appwrite.online/incident/711585)
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
https://status.appwrite.online/incident/711585
[Status incident 711585](https://status.appwrite.online/incident/711585)
🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

70-70: Bare URL used

(MD034, no-bare-urls)

🤖 Prompt for AI Agents
In 2025/08/24/readme.md around line 70, replace the bare URL
"https://status.appwrite.online/incident/711585" with a descriptive markdown
link to resolve MD034; update it to use bracketed link text like "[Appwrite
status: Incident 711585]" (or another concise description) followed by the URL
in parentheses so the markdown is more descriptive and passes markdownlint.

@stnguyen90 stnguyen90 self-requested a review September 2, 2025 21:05
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

♻️ Duplicate comments (4)
2025/08/24/readme.md (4)

1-1: Use a descriptive, user-facing incident title with dates

Improves indexing and clarity.

-# Email, SMS, and Realtime Delivery Issues
+# Degradation: Email, SMS, and Realtime Delivery (Aug 24–26, 2025)

31-31: Grammar: “a few errors”

-We noticed few errors in the messaging system responsible for handling message delivery.
+We noticed a few errors in the messaging system responsible for handling message delivery.

49-49: Grammar: pluralize “task” and add article

-We stabilized the messaging infrastructure by migrating critical queues to a more reliable system and disabling task contributing to overload.
+We stabilized the messaging infrastructure by migrating critical queues to a more reliable system and disabling tasks contributing to the overload.

70-70: Fix bare URL with descriptive markdown link (MD034)

Resolves markdownlint warning.

-https://status.appwrite.online/incident/711585
+[Status incident 711585](https://status.appwrite.online/incident/711585)
🧹 Nitpick comments (6)
2025/08/24/readme.md (6)

3-6: Add duration and severity to top metadata

Gives quick at-a-glance context.

 - **Incident Start:** 2025-08-24 07:26 UTC
 - **Incident End:** 2025-08-26 05:10 UTC
+- **Duration:** 45h 44m
+- **Severity:** Degraded
 - **Report Prepared By:** Divyansha

Please verify the duration math from the provided timestamps and adjust severity per your taxonomy.


9-10: Clarify timezone in summary date range

Keeps consistency with UTC metadata.

-Between 24–26 August 2025, some Appwrite Cloud users experienced intermittent issues with email delivery, SMS and email OTPs, and realtime events.
+Between 24–26 August 2025 (UTC), some Appwrite Cloud users experienced intermittent issues with email delivery, SMS and email OTPs, and realtime events.

15-16: Mention alerting and time to detect

Add whether automated alerts fired and the TTD metric to strengthen learnings.


25-26: Quantify impact where possible

Include approximate error rate, affected regions/tenants, or % of messages delayed/failed.


39-40: Clarify the “why” behind the overload

Briefly note precipitating factors (traffic spike, config/regression, dependency limits) and what prevented backpressure. Helps readers understand recurrence risk.


62-64: Make action items SMART (owner, due date, measurable outcome)

Improves accountability and follow-through.

-Improve monitoring and alerting for earlier detection of overloads.
+ - [ ] Add queue depth and consumer lag SLOs with alerts (Owner: @oncall-backend, Due: 2025-09-30)
+ - [ ] Implement rate limiting/backpressure on producers to protect queues (Owner: @platform, Due: 2025-10-07)
+ - [ ] Load test messaging path to 2× peak with dashboards (Owner: @perf, Due: 2025-10-14; Success: <1% drop rate at 2×)
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between cb94a9c and 5b034ba.

📒 Files selected for processing (1)
  • 2025/08/24/readme.md (1 hunks)
🧰 Additional context used
🪛 markdownlint-cli2 (0.17.2)
2025/08/24/readme.md

70-70: Bare URL used

(MD034, no-bare-urls)

@stnguyen90 stnguyen90 merged commit 9a1fd56 into main Sep 24, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants